package com.ruoyi.depot.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.sale.domain.Plan;
import com.ruoyi.sale.domain.ShipmentsProduct;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;
import java.util.List;

/**
 * walmart备货计划对象 walmart_stock_plan
 * 
 * @author ruoyi
 * @date 2025-02-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class WalmartStockPlan extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 备货计划id */
    private String stockId;

    /** 备货计划编号 */
    @Excel(name = "备货计划编号")
    private String stockNumber;

    /** 货运方式 */
    @Excel(name = "货运方式")
    private Integer shippingMethod;

    /** 物流公司 */
    @Excel(name = "物流公司")
    private Integer logisticsCompany;

    /** 物流公司名称 */
    @Excel(name = "物流公司名称")
    private String companyName;

    /** 物流公司id */
    @Excel(name = "物流公司id")
    private Integer companyId;

    /** 备货状态 */
    @Excel(name = "备货状态")
    private Integer status;

    /** 备货状态 */
    @Excel(name = "备货状态")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date shipmentDate;

    /** 发货方式 */
    private String mannerName;

    /** 备货仓库 */
    @Excel(name = "备货仓库")
    private Integer stockWarehouse;

    /** 备货仓库名称 */
    @Excel(name = "备货仓库")
    private String warehouseName;

    /** 货运ID */
    @Excel(name = "货运ID")
    private String shipmentId;

    /** 货运状态 */
    @Excel(name = "货运状态")
    private String receiptStatus;

    /** 关联店铺id */
    @Excel(name = "关联店铺id")
    private Integer authId;

    /** 体积模式 */
    @Excel(name = "体积模式")
    private Integer volumeMode;

    /** 超出运费相关信息 */
    @Excel(name = "超出运费相关信息")
    private String freightValidationLog;

    /** 快递单号 */
    @Excel(name = "快递单号")
    private String trackingNumber;

    private List<Plan> planList;

    private String searchSku;

    /**
     * 修改备货计划时选中的销售计划详细数据
     */
    private List<ShipmentsProduct> selectedPlans;

    @Override
    public String toString() {
        return "WalmartStockPlan{" +
                "stockId='" + stockId + '\'' +
                ", stockNumber='" + stockNumber + '\'' +
                ", shippingMethod=" + shippingMethod +
                ", status=" + status +
                ", shipmentDate=" + shipmentDate +
                ", mannerName='" + mannerName + '\'' +
                ", stockWarehouse='" + stockWarehouse + '\'' +
                ", shipmentId='" + shipmentId + '\'' +
                ", planList=" + planList +
                ", selectedPlans=" + selectedPlans +
                '}';
    }
}
